added operater overload functions to flesh out test suite
additionally: a overloaded stream insertion opperater should
interact with the steam its passed, not use an explicitly stated stream
(like cout). I fixed this