pushing this versions changes because I am making some large structural changes to the approach.