Cleaning Up CFile

Incorporating the changes in PR #2596 
The same thing as above. If you want to use only one macro for both the setters and getters, that's fine for me. But I would rather use another name for the macro that either reflects that it includes both setter and getter, or does not seem to be bound to only one of them.