insanely generic matrix vector product is go! Now just need to test it and write instances so it will actually run!