implement remaining operator functions