modified Init