minor optimizations
improved some async behaviours