refactored principle actors to FSM