fixes #68
fixes #70
fixes #24
fixes #71
fixes #25
fixes #72
fixes #73
fixes #74
fixes #30
fixes #75
fixes #81
fixes #85
fixes #69
fixes #90
fixes #31
fixes #78
fixes #33
fixes #79
fixes #76
fixes #29
fixes #77
fixes #80
fixes #37
fixes #82
fixes #83
fixes #36
fixes #84
fixes #39
fixes #86
fixes #40
fixes #87