take #2

Please review and comment the updated implementation.