Add functional version of middleware, add flag to check whether it runs default query or modified query
requested review from @fgs21
assigned to @fgs21
mentioned in commit c3014f7b
merged