added more work; some needs to be undone