I don't think `unshift` should require the `Clone` bound (just needs to move to another impl block)