Refactor mappers a bit to use &Trait

Unfortunately this exposed a borrow checker bug.