#13: using Q.defer and move a lot of methods into say model
Merge branch 'model-system-id-13'