updated design, working out structure