Hooray for abstraction!