sync with github #43 #42 #77 #74