mostly final
clean up
final