shitton of changes mostly dealing with changing lengths