Removed uniform initialization from the constructor, since special handling will have to be added for illegal states.