some rework
correction