optimized caching and compiling, now only the necessary files are
recompiled!!