modified init