forked from: forked from: Wonderfl trace()

