make some restructuring