experimental build system based on caching functions