State Pattern is added