MAJOR REFACTORING, API CHANGE