closed #874  closed #895
closed #1072
closed #1195