splitting what is the api and what is the interface