statepattern
