Underscore matching works superficially.  Needs a lot more testing and uniqueifying.
Added virtual destructors for debugging.
Merge branch 'feature/underscores' into develop