Adding the initial file. It works, but it needs cleaning up, better docs needed, refinement.