Project3 of CS143