create an abstract class for file entity