Refactoring and adding coercion for basic arithmetic. Still have a problem with constant arguments when certain object args are passed in.