Finsihed as much as I can