added some additional test cases (for negative arguments)
can now handle negative multiplication, still only using + and - operators