closed #2670 closed #2671 closed #2672