State-Pattern update