use json schedule instead of xml; refactor based on singular source