refactoring, dynamic loading, tests