proper OOP for File