@zkat in a function starting with to_ it wants self to be taken as &mut self, since that's apparently convention
@zkat actually, I misread the chart on https://rust-lang.github.io/rust-clippy/master/#wrong_self_convention, one of the bottom two cases apply https://rust-lang.github.io/rust-clippy/master/#wrong_self_convention