closed #975 closed #977
closed #976 closed #978