superid - datong, refactor by me