added initWithJSON method to use external JSON file for markup