depend on external heap module