making execute easier to understand by separating each task into functions defined outside of execute
using a+ promise to auto catch errors in lib/utils
promisify getManifest