ref #79 add genericproperty template and corresponding visitor methods