added some new preconditions