Refactored to account for multiple DataProducts, all unit tests now pass