Initialize goes first dummy! Also some clean up and documentation.
too tired for precise comment