nat and number generators
more documentation