do not cross the abstraction barrier.