This is update Dec 16. Fix the passing null parameter problem.
Hope I could finishit by the end of this year!