Add ThingService and apply necessary refactor.