change action to uint16 instead of a struct