added #94 #47 #44 #61 #120 #63 #18