Finished writing(not tested) abstraction_service.cpp