add daemonize function