added the safety for small values, and assigned the identity in this case.