changed the datasource builder to concrete builders
added unit tests. updated unit tests. updated the html builder to take the templating engine in a setter instead of the constructor