label each weakness according to different levels of abstraction: Class, Base, and Variant.
for each weakness, identify the key behavior that seems to be invariant across any weakness of this type, and how the behavior is erroneous. Ensure that the behavior is reflected in the weakness, and build an abstraction of behaviors.
if multiple behaviors are involved, then the issue is probably a category that requires a split into separate weaknesses.
if the weakness is specific to a particular type of resource, identify the type of resources being manipulated, and build an abstraction of that resource.