root generation