service functions have been refactored