comparable mixin