updated to handle more exchanges