added checks to all binary ops