contact : patrickshao49@gmail.com