Fixed some bug, but the async issue still exists!