fix recursive structure