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

It's not a python code, so it should follow Guido Van Rossum, not Mozilla, it's python coding convention, and for the sake of the argument 2 spaces indention make the code less readable, it mush be outdated guideline, check it out, it will make more sense when you read it, check every Python Open Source framework, you will not find any one of them use something other than 4 spaces indention.