Definitely some DRY-incompliance here, but whatever ... for now.