Issue 56: Generalize FileLoader to support the loading from different resources, such as database