# Clean Up Dawn Headers
###### tags: `functional cycle 12`
Developers: Matthias
Appetite: 1 Week
This project can be considered a stand alone project or be incorporated into other efforts, like removing dusk & dawn from the exclaim toolchain
## Background
In the bindings being generated, 8 headers from dawn are included. While all of them are possibly required, they could certainly be slimmed down, maybe merged or re-organized in other ways. They don't follow a common coding style and are suspected to be of varying quality.
Furthermore, there is quite a bit of code being generated that is static and could be refactored into a header instead.
## Goals
* Go through these headers, ensure a common level of code quality and consistent style. Re-organize the code as needed; maybe some headers can be merged. Remove static code from the generated bindings as deemed approrpriate and move to a header, adapt the bindings generator accordingly.
* References to the `dawn` namespace should be purged
* Eventually, these headers should be moved out of dusk & dawn. This should be syncronized with the efforts to remove dusk and dawn from the icon-exclaim toolchain
## Non Goals
Do not try to change the actual logic of the code, e.g. do not try to replace vtk serialization by a vtk library or similar.
### Known Steps
A list of the currently included headers follow, with some suggestions for improvements that were immediately apparent when breifly skimming the headers
- `cuda_utils.hpp` Can probably be trimmed down a lot, reshaping functions probably unused. Could end up to only contain meshing aspects, so maybe rename or move into another header
- `cuda_verify.hpp` Templating of verification functions can be improved
- `defs.hpp` dawn precision handling, try to remove this
- `to_json.hpp` looks reasonable
- `to_vtk.hpp` consider to refactor this into a header only library, `MeshInfoVtk` may be problamtic though
- `unstructured_domain.hpp` may be unused since we pass domains now explicitly from FROTRAN
- `unstructured_interface.hpp` may be unused since we use SID now
- `verification_metrics.hpp` maybe try to move this