Moved more code to BaseFile as it makes sense to have it there.