add some code for structure