Overhaul Voucher.java structure