Version 1
Version 2
Version 3 - this is pretty but a little impractical, very difficult to make it work as flat line work