Refactored abstract services