1. better template decomposition
2. no more support for field.render property (use template overriding instead)