e recursively