required count and optional count