refine programming guide