new way of create a module