add heavy path decomposition