made target_eigenvalue a shared pointer