some restructure work