Added preconditions