Adding some extra interfaces to help with code reuse. 

...mparator can be written to sort anything that is temporal by time. Or sort anything that is identifiable by id.