update the header to fit Eigen and std::vector