closed #952
closed #953
closed #954
closed #955 closed #956 closed #957
closed #958 closed #959 closed #960