added eigen stuff