wrapped in exception incase 0 division