initial commit - everything is here just need to tidy it up a bit here and there...