Basic identification - needs a lot of more work
Merged Colin's code with mine