added ostream operator