major changes, reads from JSON and validates challenge