Add functional version of middleware, add flag to check whether it runs default query or modified query