Wow much constructor, such single-init, many clean design.