Refactored init protocol