To do:
- Remove `PreExecution`
- Remove `ESTATE_Pending`
- Have all locking code inside `Execute` method