Hardware detection (more work on it)