Collated Wilson's contributions
Made some changes to abstract the interfaces
Merge branch 'master' of https://github.com/cs2103aug2014-w09-1j/main