Rewrite #3!  Big one, made quite a few simplifications.
adding some new files