some restructuring

some restructuring