allow sideeffects to change query model