restructure and updates