remove unused typedef
add static assert for maximum number of states (256)
add noexcept to functions for destruction