Finished project - terrible programming methodology :(