code: func (e *Engine) LoadDirectory(dir string, extension string) error {
  
  	// register the global helpers on the first load
  	if len(e.templateCache) == 0 && e.Config.Helpers != nil {
  		raymond.RegisterHelpers(e.Config.Helpers)
  
  	}
  
  	// the render works like {{ render "myfile.html" theContext.PartialContext}}
  	// instead of the html/template engine which works like {{ render "myfile.html"}} and accepts the parent binding, with handlebars we can't do that because of lack of runtime helpers (dublicate error)
  	e.mu.Lock()
  	defer e.mu.Unlock()
  	var templateErr error
  	filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
  		if info == nil || info.IsDir() {
  			return nil
  		}
  
  		rel, err := filepath.Rel(dir, path)
  		if err != nil {
  			return err
  		}
  
  		ext := filepath.Ext(rel)
  		if ext == extension {
  			buf, err := ioutil.ReadFile(path)
  			contents := string(buf)
  
  			if err != nil {
  				templateErr = err
  				return err
  			}
  
  			name := filepath.ToSlash(rel)
  
  			tmpl, err := raymond.Parse(contents)
  			if err != nil {
  				templateErr = err
  				return err
  			}
  			e.templateCache[name] = tmpl
  		}
  		return nil
  	})
  
  	return templateErr
  }
docs: // LoadDirectory builds the handlebars templates