The WinUSB demo app contains a lot of generally useful code. It would be nice if the non-application specific part of it were spilt off into a class library that could easily be used by other applications. Normally, this is trivial to do; you just move the relevant files into a new class library project. In this case, it doesn't work so well because for some reason which is not apparent to me, many of the classes and functions are marked "internal". Indeed, almost everything appears to be either internal or private. What was the logic behind so extensively making everything internal?