overridable body_open