migrated to gradle
merge with master