refactor: queue factory