mixed datatypes

Any reason why you're not doing:
```
self.datatype_index += 1
self.datatype_index %= length(self.datatype_list)
```

Also, you can make use of the `default_format` property in the library itself, rather than this complex chain :)...