Getting a better validation system but still too 'spaghetti style' for me