closed #2628 closed #2629 closed #2630