Fix #19
Fix #22
Fix #25
Fix #26
Fix #31
Fix #34