refactory service skeleton