compile each file seperately to prevent namespace clobbering