major changes -- check that these don't break anything