System design challenge