define vector and matrix data structures