closed #1847 closed #1848 closed #1849
closed #1850 closed #1876 closed #1877
closed #1878 closed #1879 closed #1880
closed #1881 closed #1882 closed #1883
closed #1884 closed #1885 closed #1886