Yilong tuffy port

This is a temporary pull request to review the changes.
we do not want to use id because it's random. We want the number to be deterministic such that we can test on.