Add cache feature
Improve documentation