added assignment 3, which is almost but not quite totally incomplete