1.2.3. System design