put together a proper comparison operator API