Binary and Unary abstracts added and some refactorings