add comment about how wrap allows to mix middleware with and without context
fix benchmark tests