very rough token exchange