refactor command queue
refactor command queue
decouple dependency async