- Use dependency injection to inject platform-specific classes, such as LinuxWebClient
- Improve operating system detection, and add a description mechanism