A framework for creating a strongly typed model based on Sitecore templates and the Sitecore API