Use a custom type instead of i32 to provide helpers, and make it easier to change the internal info in future release.