arrays and optional