full api and better coverage