port to new rust
wip generic Register