Bryan and I work closely to refactor the whole project to adopt our new design. But at the mean time, we found that we may not finish the whole refactoring before the end of the term since it pretty much requires a full refactoring for all files (not really all but quite a lot). We prepared a document to present our design principle and refactoring plan for future reference and as well as to make sure we don’t go extreme *wrong”. 😛
I wrote this rough draft to present the basic ideas. It might not be detailed enough however it does show the critical points of the new design. We will revise it pretty soon.
Please feel free to ask questions and make suggestions regarding the new design.