use Eigen for vector instead of native array