ported over the vector module