generic entity factory now creates specific collections