Dividing init into a few sections.