init the structure, then maybe update