added eigen algebra, todo: write tests