fixed #13
fixed #16
fixed #19