Finished up. Need to cut down the code. It's a bit slow.