safer init