@yifan-gu Why return a interface?