hopefully this works! lots of changes!