add SFINAE code to check existence of member.