made HeapObject to a non-abstract class and the external object
an instance of HeapObject