implement more operators