closed #2631 closed #2632 closed #2633