add virtual_method
add virtual_method