Refactor Insert (at least) to be DRYer but still have mutable+immutable methods