Introduce common module interfaces across smart and iot devices and provide better typing implementation for getting modules to support this.