File operations (interfaces are in utils). This mainly decouples from the actual version of the files software and makes file operations easy to test