Polymorphism is supported through validate and perform, not constructors. By convention, all actions must contain an empty constructor.