restructure public