Structure changes
- introduce templates