massive changes, pretty close