Remove TemplateEngine implementation

+ Implement the new Fluent API and refactor ForOp