added unary op compilation