Does the whole thing need to be mutable?