refactored luhn check out to a Luhn class and other general inprovements