add a bit of abstraction