closed #950 closed #1081
closed #1134
closed #1210 closed #1138