might want to make these more generic.