style: controller fsm