save some memory by not having each type have its own name
some 64bit fixes, and use Math::Int64