Fix #18
Fix #14
Fix #16