closes #676, closes #466, closes #167,  cloese #602, closes #659, closes #646, closes #603, closes #602, closes #667
closes #676, closes #466, closes #167,  cloese #602, closes #659, closes #646, closes #603, closes #602, closes #667

zhihu/Matisse