add compare function