more generic config read