added toString() override