modified ver9. about parameter 'val'