Refactor FSMMeta, close #38