closed #2646 closed #2647 closed #2648