Merge branch 'master' into unstable
cleanup codebase
more refactoring
modularize stuff
Merge branch 'unstable'