Finished build. Could use a ton of code cleanup.