fixed #29
fixed #26
fixed #30