Rewritten the module in the new client module format