Lots of changes. Changed Shift comparison function, and add tracking for last inserted shift in datahelper. Still need to remove dh.insertdedupe(Shift[])