fixed #16
fixed #17
fixed #18