initial commit, a lot of things need to be done to put this stuff to usable state