Interfaces and abstractions