Open Close Principle added