system design issues