Refactory InitFactory