See comments for first task