Removed pure-functional matching. I need a deeper review.