added voucher model
added business logic for vouchers.
refactored vouchers logic, still not optimal.