This is big enough it should probably be a new helper method.