New version with abstract interpreter