Feature/create app

@kevandunsmore 
1.  Renamed the files to be less confusing.
2.  Uesd jsclass
3.  Added more test coverage for app model.