provisioning refactored