some optimization
add first version of caching tasks