moved to Eigen; sparse everything