holy crap that was a lot of mumbo jumbo.  Added prereq checking, nearly completed