avoid "inline" in public headers for strict c89 compatibility