a terrible sin called StateFactory to maintain singletons of States