oops. forget that everyone doesn't compile this into a dll. fixed protection level issues