reworked the source models to allow for variable queries