Implement what is conceptually correct
If this is done correctly you can provide one or several APIs that are pleasant to use.
Links to this note
An API is good when you do not think about it
Design by manipulating mock code