There is some enhancements I found on Web, to make it more robust.