After 8 months of work, it is ready! Please give your advice and comments on this. All PRs are welcome.