Added classes for State and Strategy pattern support