implemented the rest of the operators