add global string/number functions with contracts, and start on built-in types