add <=> operation