will add other precondition tests as well.