[JAVA] Finish refactor, everything working