http://fullstackprep.dev/articles/webd/java/difference-between-comparable-and-comparator