fix balance, but have some problems