bunch of things i've been meaning to realease in the 2.X branch