some restructuring
finish restructuring