Added some state and OOness