merge BaseEngine with Helper
remove async dependency
rewrite some code for more reasonable
pump package