Understanding abstractions