This is CS5200 final project made by Liangchen Zhang, Hainan Fan and Shipeng Sun