Some MAJOR SM Changes, still not finished; see todos