more flexible classloading