rework based on feedback