add _flush() override