basic merchant implementation & tests