refactoring of shopuser