implement build
implement pack and push