Heres V2. I'm wondering whether it might be too complex. I also would like any criticism possible.

*** Latest WIP ***