first feature complete/tested version.  more work still probably needed later on