A bit more abstraction.