revised FiniStateClass