service refactoring - step 1