use destructors in object protocol instead of using prewalk