wrapped as a module