closed #2579 closed #2580 closed #2581