the whole thing seems to work