started moving shit into packages, and passing methods rather than units

God this is huge.