before making Lazy use smart pointers
sync
added precompile()