lots of changes this should work

otherwise we're boned