finish ex37~ex39