module management logic moved to lib-module