What happens if you call this (or `animatedDepart`) code while an animation is already running.  I imagine we shouldn't allow that.  (unless I'm missing something).  By turning these functions into `Command` objects, we can prevent them from being called inappropriately (and throwing if they are).