use repositories to create and retrieve models