matchmaking design + refactoring