change internal code structure