The State pattern has been added.