Ah yeah, so the first impl block is annotated with `#[pymethods]` which mean that those methods are exposed to the python layer, and as such have strict requirements on what types can be used. The second impl block is just standard Rust methods.