painstakenly