zstrdup/zaux for pointer tracking
zreverse for lists (bad impl)