fixes #59 by introducing vector class (as opposed to type def)