Separate implementation of VectorSpace

Fixes an item in #48.