fnished and partially working. no idea why it isn't 100%