fix #648. fix #646. close #649.