modify structure and add sync