I'm starting to think that the mutable state in this class is very confusing.