refactored for access service