Roughing out what I think it should look like, haven't had time to test

Will have to try it out and find all the bugs when I have time but
saving this work for now, since I think this is approx. how it should
look & behave for a very basic implementation