Some refactoring of the base service