Finished. Could use some cleaning up.