i failed to commit the previous version which was purely homegrown and thus wrong. a few, maybe three, files here have been transitioned into accepting Eigen arguments as this will be a significantly smaller headache in the long run