move some method to service