rename File to ReadableFile
rename variables to be consistent
rename few variable names
decouple ReadableFile from WritableFile