Restructure public