restructued code