change Loader from an abstract class to an interface