up a bunch of the MP code. Still doens't work properly yet, this is just a snapshot of work-in-progress.