more effeicient re-balance