crapton of changes, probably not in a usable state