add quiet option to AbstractWorker, some refactor with return this and changed Controller to use with container