more refactors

put in the first round to do background jobs for things like downloading
and extraction.  That still needs work.  Also had issues with the
provisioner not installing things so i made it a function so that i
could test if it went well and react.