Version 1 - finsihed but needs tweaking