Работающий на sample.java код

Кажется все работает. Нужно еще тестить