restructure the code so it explains itself