add prereq checking