write procedure dispatcher