Reorganised the tests to align with the main code.
Broken. Working on adding generic support.
Added support for Generic models.