Partially finished.
final