Maybe last version wasn't so bad. Just need to add getYearsUntilInterestPaid() method.