rework initialization