What are the best practices for eliminating single points of failure (SPOF) in a network? What are the most common ways to eliminate them?