This seems to reoccur in several types, if they are the same we might be able to group them in util.