change to use the fragment structure