Improved the error message for ENODEV
Code cleanup
Implemented a generic fallback mode