Tidied up middleware documentation and added a third (very nice) example