Misc Changes

Tried to implement stream insertion function overloading for the
classes, but decided to keep with virtual functions due to legibility
concerns.