no need for explicit return in internal API function