updated initialization process. Not accepting nils anymore