interface as a module