2 Building Abstractions with Data