code restructuration