program preparation