added state pattern vs explicit modelling example