Rework from scratch