implement associatable part 1