Cleaning Up CFile

Earlier, I had made an attempt at this issue, but forgot to run tests against it. Now, they are passing all the tests.
the line above here is not purely virtual because otherwise, the class would be abstract, which for some reason was avoided. But with the new approach, this can also be empty I guess?