keep extern fields
fix bug test