clean up, functionality unchanged