fix #43, close #69, #resolve #76, properly done #65