optimize the cache, new modificators, new tplfunction