Refactoring: extracted QueueFactory and shook out dependencies
change docs