Fix #70
Fix #45
Fix #47
Fix #48
Fix #53
Fix #79
Fix #73
Fix #80
#80