getting all the subrequest stuff to work, I think we are largely done here with this refactor and I am pretty happy with the end result