fix for looping applyChanges
beef up docs for transaction, move validators to own file