Added test cases
Messy model that works