no duplicate, no empty allowed and check with capacity