Hw4 Basic Part + Some Bonus(HAVE NOT TESTED!)