operation” Filter[ReqIn, RespIn, ReqOut, RespOut] = [ReqIn, Service[ReqOut, RespOut]] => Future[RespIn] ie. it’s a function! val addType = new Filter[Request, Response, Request, Response] { override def apply(request: Request, service: Service[Request, Response]) = { service(request).map(resp => { resp.headerMap("Content-type") = "application/json" resp }) } } Filters compose with other Filters/Services using andThen()