this seems like something we could use a helper for