implement a module like interface for code