optimized the prereq operator