Rework and improve