added non blocking mode
added non blocking mode
updated changes