Empty files allowed on the assumption that no operations can be performed until something is added, oh and code is basically finished