add necessary initializer magic