Extracted out the high-level methods to separate point of sale from implementation details.
Get rid of specialization on the point-of-sale would-be-object because there's no need in such level of modularity