Significant re-write to match.