add VIP field. refactor