What's the point of having this be a signal instead of just a plain old function?