Need to rework the entire solution