System design