refacto structure