refine init requirements