err handling
closure and go routine