Needs to be updated to be more generic.