more safety with table_contains