some work refactoring the DemoLibrary