Refactored IOActor's state transation