rearrange the structure a bit