Finished eval_prog, shift, intersect