we rly should do q.async