so we can remove all the duplicate registration implementations ...and we can put some other shared stuff in there as well