refactory
Refactor, use mvc and getattr, hasattr, classmethod
Merge branch 'refactor'