if refectoring