Use unsigned integers for lft and rgt
Add hasMoved() and save in transaction
Update docs