How to customise the Patient Registration page?

More importantly, now I tried to use a custom .gsp fragment (simply copied from the Ebola example), placed in ./omod/src/main/webapp/fragments/field/ethnicity.gsp:

<p class="required">
    <label>
        ${config.label}
        <span>(${ ui.message("emr.formValidation.messages.requiredField.label") })</span>
    </label>
    <select name="${config.formFieldName}" size="3">
        <option value=""></option>
        <option value ="142177AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA">Suspected case</option>
        <option value ="159392AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA">Confirmed case</option>
    </select>
    <span class="field-error"></span>
</p>

within my app’s JSON configurator:

{
   "legend":"Ethnicity",
   "fields":[
      {
         "type":"obs",
         "formFieldName":"obs.162828AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
         "label":"Ethnicity?",
         "widget":{
            "providerName":"mymodule",
            "fragmentId":"field/ethnicity"
         }
      }
   ]
}

And upon clicking on the app OpenMRS is complaining about a missing controller:

org.openmrs.ui.framework.UiFrameworkException: No controller provider: mymodule
	at org.openmrs.ui.framework.fragment.FragmentFactory.getController(FragmentFactory.java:296)
	at org.openmrs.ui.framework.fragment.FragmentFactory.processThisFragment(FragmentFactory.java:146)
	at org.openmrs.ui.framework.fragment.FragmentFactory.process(FragmentFactory.java:116)
	at org.openmrs.ui.framework.page.PageContext.includeFragment(PageContext.java:75)
	at org.openmrs.ui.framework.UiUtils.includeFragment(UiUtils.java:155)

Could you point me to this controller in the Ebola example module?