datatypes: wish there were more on protocols