Session in implemented using FSM<T>