initial mapper
refactor