Using a CRUD module to capture user input is simpler and faster. For such cases, there is a CRUD module. Regarding whether this is correct, it depends. You have a lot of settings, then you can override crud templates and this should work.
Just create an address controller that extends CRUD. It will be available as part of / admin /. Here it is.
basav source share