clean, logically arrange, document
Merge branch 'master' into xxxajk