ok, found a bug:
(Mwahahahaaa!)
*ahem*
If you move a block to a corner and then try to move it off the board (which it correctly prevents you from doing), when you click undo it does not undo the last valid move (instead it undoes the invalid one and greys the undo button).
*EDIT*
This could probably be explained a little more eloquently but it's 7am and I haven't slept yet.
(Mwahahahaaa!)
*ahem*
If you move a block to a corner and then try to move it off the board (which it correctly prevents you from doing), when you click undo it does not undo the last valid move (instead it undoes the invalid one and greys the undo button).
*EDIT*
This could probably be explained a little more eloquently but it's 7am and I haven't slept yet.