additional middleware can be added one at a time