save records upon changing them. cleans things up and fixes some bugs. closes #23