Fix #19
Fix #25
Fix #23
Fix #26
Fix #27