safer initialisation