Refactor location, filename, and klabel attributes

**please review**
Why is `filename` a File now?
Keeping it as a String has the advantage that is easier to serialize and deserialize.
Plus. How many times are do you need it to actually open a file? Most of the time this is a description, information for the users.