implement Daemon