refactor merchant class