move core MD type def
rejigger all the things
remove some pointless constructors