Refactor location, filename, and klabel attributes

**please review**
see my comment above about a non-null enum Source.