new commit
nearly finish java part