init rework