optimizing system design