compleatly refractoring my implementation and algorithms. Not back to
full order yet