Add uptodate checks for program 

Add up-to-date checks for program object to avoid recompilation if not needed