Remove Prototype
Add an overflow check like the original implementation