reorganized for final submit