uses concurrency by default
now initializes branch locks, needs to lock on _validate and _balance