solution of #76.