closed #1827 closed #1828 closed #1829
closed #1830 closed #1835 closed #1837
closed #1840 closed #1842 closed #1843
closed #1844 closed #1845 closed #1846