def METHOD_NAME(cfg):
    '''
    This thin wrapper starts a RCT component It expects a single argument:
    a config to use for the component's configuration.  The config must contain:
      - uid : UID of component instance (unique to the hosting session)
      - name: name of the component
      - kind: type of component
    If the config contains a `heartbeat` section, that section must be formatted
    as follows:
        {
          'from'    : 'uid',
          'pub'     : 'addr_pub',
          'sub'     : 'addr_sub',
          'interval': <float>,
          'timeout' : <float>
        }
    If that section exists, the process will daemonize and heartbeats are used
    to manage the bridge lifetime: the lifetime of this bridge is then dependent
    on receiving heartbeats from the given `uid`: after `timeout` seconds of no
    heartbeats arriving, the bridge will terminate.  The bridge itself will
    publish heartbeats every `interval` seconds on the heartbeat channel under
    its own uid.
    If the heartbeat section is not present in the config file, the components
    lifetime is expected to be explicitly managed, i.e., that this wrapper
    process hosting the bridge is terminated externally.
    The config file may contain other entries which are passed to the component
    and are interpreted by the component implementation.
    '''
    # basic setup: cfg, logger and profiler
    log  = ru.Logger(name=cfg.uid, ns='radical.pilot', path=cfg.path)
    prof = ru.Profiler(name=cfg.uid, ns='radical.pilot', path=cfg.path)
    try:
        prof.prof('comp_start', uid=cfg.uid)
        prof.disable()
        wrapped_main(cfg, log, prof)
    finally:
        prof.enable()
        prof.prof('comp_stop', uid=cfg.uid)