refectoring project