predicative mode
viper mode