refactering
more event capture
pushed state turn change pop state.