Change templating to be friendlier by using supplant method. Generating methods on the repository based on convention instead of using the definition for the "expected methods"

Externalizing some of the templating to files instead of inlining in te code. This is an approach we should favor.