Move over a ton of work from another repo to this one.  Still having an issue with the circular dependencies