More work on moving to new structure
Implement matches for multi-generics