Fix: State design pattern, more correct.