factored out doversions, moving register types into docommon