How layering protocol software violates separation of concerns