closed #2621 closed #2622 closed #2623