add BaseFSM