Refactor location, filename, and klabel attributes

**please review**
Why do you need to extend Comparable?