Reimplement Lab 5 Step One.

	The previous implementation really lacks many considerations...
	Too young too naive...