Introduced File class

Accidently included the draft in the previous commit!