Fix token collision, optimize async