refactor skew heap