TBH, there isn't a technical reason - it very well could go inside the definition (and we have previously talked about it), although with the presence of the then(RoutingHttpHandler), it's a bit neater to keep all 3 definitions together, as well as being a place to put future implementations. Also, it keeps the definition of the Filter down to the very minimum single method interface.