Yeah down the road I'd definitely like to DRY this up - wanted first cut to be very explicit though so I didn't optimize too early.