restructure into components and load data from json