#9 added %+% as binary operator