broke out preBuild from compiler and added support for skipping steps