remname FSM EmptyData -> DataType, EmptyInputOrResult -> EventDataType, and make it easier to specify DataType