rearranged initializer