implemented toString (does not override)