done with awesome Comparable module