what is this XXX in reference to? Should this take `&mut self`?