Finsihed first attempt