Refactoring base APIs