limit to one of each type