Revert changes
Reworked File
Added Exceptions
Added FileSystem implemenation
Added factory for File