refactor some code
refactor binary operators
refactor unary operators