Module support for SMART devices, support for introspectable device features and refactoring the library.