abstract es service