Initial implementation of Comparable
First refactor of Comparable implementation.