Fix #19
Fix #21
Fix #18