In addition to customer demand what must be considered when designing a system?