Adding MVC architecture, and organizing the code more and adding some docs string.

Same thing for identation 2 spaces, no tab.