try to explain the template