Working version - happy with this.
First version.