polishing the API