Began the StateMachine.

The NetworkEvent must be implemented and the State(Machine) should be
abstract, so it shares with the network package.