sensible abstraction

we were talking about this in email :)