Interim commit for part 1 - basic first pass, adding extras is ongoing