support unary minus and plus