internal_functions final