refactor binomial heap