modified init method