closed #293
closed #213
closed #209
closed #186
closed #257
closed #193