Makes number implementations more generic
Improves naming to be less lame