wip
caching works!
refactor the middleware.
readme