why not make this immutable?