closed #2625 closed #2626 closed #2627