Review of Networking and Design Concepts
There are two ways of constructing a software design:
one way is to make it so simple that there are obviously
no deficiencies, and the other way is to make it so
complicated that there are no obvious deficiencies