refactor
avoid edge-case duplicate mapping