Almost done. Code clean up required.