enough functions completed to start testing, need to reconcile changes since last edits to header first