controller recomstruct