implementes simple caching system
added option cache