feat(mappers): add bi-directional mapper