balance not handles fringe cases