refectoring update 1