fixing dual init behavior