it works!  it's all good and fast and shit.  move undoing is implemented