This is my first time using node .... so ... I will re-implement it with other language in the future....