Better abstraction