added a vector class with vector maths and a little more work on the other stuff