Initial commit - lots of functionality already though
Initial pull from github