Refactoring and 1.8 support
Refactoring
Refactoring
TAB to 4-space
Refactoring
Merge branch 'master' into 1.7.2

Conflicts:
	build.gradle
Merge some updates to 1.7.2