added VectorSpace class