refactoring the api...
refactoring the api...