* Pulling initial model code into the project from use elsewhere, need to redesign the API, add more tests and functionality but this is our basic starting point