refactor promo parsing stuff