Also, feels like with a little creativity this could become smaller and more DRY.