Added some basic argument checking
Tidied up code
Added basic interface methods, needs implementing
Added Docs/ folder as per IWDev request