restructure all dynamic