refactor to use Pimple based PricingContext