refactoring + associations feature: phase 3