Some documenting
Do all object allocation initialisation together