add handling exceptions