allow only one component of each type per entity