Added object-based state transition