Abstract class comparable