FileInterface header and implementation. Not Finished