refactored and added some slurping and spitting