refactor docker provisioner