compact for naive and shared