roughcut impl of re-register