closed #199
closed #162
closed #265
closed #264
closed #266
closed #295