Updated modelling; started on State

Using State pattern