I like this abstraction.