finally use async and one entry point for imjs