added binop and refactored (&&*) etc. Tidied signatures.