Extension design pattern. Open Closed Principle