downloader daemon and base worker class

also  tried my hand at condensing the daemon launch code with a type()
statement :D works well so far