Rework & extend