Factor out make_from_parts for basic initializer

Use the same code to make parts as when explicitly creating from an array.