Move state transitions into service

Better there than in the controller