Many thanks to those who helped me:
Dan Bloch, Ilya Kirnos,
Maarten Hofman, and Tom O'Neill
Special thanks to Yingjiu Sun for everything.