Added State/IState and Singleton.