Commit two-stage generation support
Add tests
Add model
Add navigation methods
Add path() and other methods