more robust get_settings func