Added DataModel class to decouple model from controller

Signed-off-by: unknown <cnwnh1@cnwcb5a.cnw.co.nz>