actually finished without using splice