more docs
add caching