split map to trait and implementation
refactoring - map bound