add abstract service