I think this works... but maybe we need something else.