cleanup; initial pass