better coroutine and package management
reconfigure and rearrange package api