pattern programs