starting to factor out the producers/simplifiers logic into its own thing