refactoring api, no checked exceptions