refactor queue
singleton queue