chore(guard): using states instead of  service