decouple initializer head and body

* now code can be added to the initializer without needing to change
  anything else
* there is no early return needed, all cases (initializer need / empty)
  can go through the full logic.