+ required_data + exists functions