State Pattern Added