rpearce/mshah - re-organised project to modules