Improve Middleware code (Async support)
Improve documentation