exported is_data_frame and is_data_list and moved on_failure definitions to separate file