structure change and some tests