fixed #21
fixed #22
fixed #20