Added new preconditions and tests