Refactor initialization and reinitialization
Allow "status" to check for conditions that would abort.