promo refactor
further clean-up