a separate class for each PrimitiveList