This should now be able to handle the two different types of
variableStruct needed, but is not fully tested.

pmCase is broken because GIT's warning messages are hard to
read.
Some additional objects to handle other PM entities.