split out classloading