Move most save status logic to service