add abstract class for file loader