reorganized program stuff