refactor for 2 mapping