combine js & add async