Add caching of generated kernels
Isolate version in separate file