create abstract query generation factories