actually just overload ostream operator