use async ajax to imrprove performance and UX