def_method now accepts different types of method arguments
add get, get_source, exists for type