Refactor a ton of account switching functionality, plus decouple token functionality from account switching