cleanup and implementation complete