adding abstract class for Daemon and ConcurrentDaemon