Greatly simplified the file abstraction