Communication system design