massive refactoring part 2 - multimapping