It seems Contraction is done.

Need some code review.