seconded, the less API surface, the better